16. 一维的车辆世界参考答案
练习 1 参考答案
def initialize_robot(grid_size):
grid = [1/grid_size] * grid_size
return grid
另一个可选的解决方案,如下所示:
def initialize_robot(grid_size):
grid = []
for i in range(grid_size):
grid.append(1/grid_size)
return grid
练习 2 参考答案
def grid_probability(grid, position):
if position < len(grid):
return grid[position]
return None
你可以检查,以确保位置变量是非负的。 但在 Python 中,负列表索引实际上是合法的。
grid [-1]
可以访问列表中的最后一个元素。
grid [-2]
可以让你访问倒数第二个元素,等等。
练习 3 参考答案
import matplotlib.pyplot as plt
import numpy as np
def output_map(grid):
x_labels = range(len(grid))
plt.bar(x_labels, grid)
plt.xlabel('Grid Space')
plt.ylabel('Probability')
plt.title('Probability of the Robot Being at Each Space on the Grid')
plt.show()
练习 4 参考答案
def update_probabilities(grid, updates):
for i in range(len(updates)):
grid[updates[i][0]] = updates[i][1]
return grid
另一个可选的解决方案,如下所示:
def update_probabilities(grid, updates):
for update in updates:
grid[update[0]] = update[1]
return grid
第三种可选的解决方案:
def update_probabilities(grid, updates):
for pos, prob in updates:
grid[pos] = prob
return grid